home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / Ant Movie Catalog 3.5.0.2 / amc_install.exe / {app} / Scripts / netpiac.hu.ifs < prev    next >
Text File  |  2005-03-13  |  9KB  |  312 lines

  1. (***************************************************
  2.  
  3. Ant Movie Catalog importation script
  4. www.antp.be/software/moviecatalog/
  5.  
  6. [Infos]
  7. Authors=Zoltan Karpati (<link>pinyo@gibzone.hu</link>)
  8. Title=NetPiac.hu
  9. Description=NetPiac.hu (HUN) import
  10. Site=http://www.netpiac.hu
  11. Language=HU
  12. Version=1.0
  13. Requires=3.5.0
  14. Comments=
  15. License=This program is free software; you can redistribute it and/or modify it under the  terms of the GNU General Public License as published by the Free Software Foundation;  either version 2 of the License, or (at your option) any later version. |
  16. GetInfo=1
  17.  
  18. [Options]
  19.  
  20. ***************************************************)
  21.  
  22. program netpiac;
  23.  
  24. var
  25.   MovieName: string;
  26.   
  27. function RemoveHTML(Szoveg: string): String;
  28. begin
  29.   HTMLRemovetags(Szoveg);
  30.   HTMLDecode(Szoveg);
  31.   Szoveg := StringReplace(Szoveg, '%20', ' ');
  32.   Szoveg := StringReplace(Szoveg, '<i>', '');
  33.   Szoveg := StringReplace(Szoveg, '</i>', '');
  34.   Szoveg := StringReplace(Szoveg, '<b>', '');
  35.   Szoveg := StringReplace(Szoveg, '</b>', '');
  36.   Szoveg := StringReplace(Szoveg, '</p>', '');
  37.   Szoveg := StringReplace(Szoveg, '  ', ' ');
  38.   Szoveg := StringReplace(Szoveg, '  ', ' ');
  39.   result := Trim(Szoveg);
  40. end;
  41.  
  42. function AddHTML(Szoveg: string): String;
  43. begin
  44.   Szoveg := StringReplace(Szoveg, ' ','%20');
  45.   result := Szoveg;
  46. end;
  47.  
  48. function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
  49. var
  50.   i: Integer;
  51. begin
  52.   result := -1;
  53.   if StartAt < 0 then
  54.     StartAt := 0;
  55.   for i := StartAt to List.Count-1 do
  56.     if Pos(Pattern, List.GetString(i)) <> 0 then
  57.     begin
  58.       result := i;
  59.       Break;
  60.     end;
  61. end;
  62.  
  63. procedure AnalyzePage(Address: string);
  64. var
  65.   Page: TStringList;
  66.   LineNr: Integer;
  67. begin
  68.   Page := TStringList.Create;
  69.   Page.Text := GetPage(Address);
  70.     if pos('<!--tΘtel eleje-->', Page.Text) = 0 then
  71.   begin
  72.     AnalyzeMoviePage(Page)
  73.   end else
  74.   begin
  75.  
  76.     PickTreeClear;
  77.     LineNr := 0;
  78.     LineNr := FindLine('<!--tΘtel eleje-->', Page, LineNr);
  79.     if LineNr > -1 then
  80.     begin
  81.       PickTreeAdd('DVD filmek:', '');
  82.       AddMoviesTitles(Page, LineNr);
  83.     end;
  84.     if PickTreeExec(Address) then
  85.       AnalyzePage(Address);
  86.   end;
  87.   Page.Free;
  88. end;
  89.  
  90. procedure AnalyzeMoviePage(Page: TStringList);
  91. var
  92.   Line, Value, Value2, FullValue: string;
  93.   LineNr: Integer;
  94.   Adder: Integer;
  95.   Rate: Integer;
  96.   BeginPos, EndPos: Integer;
  97. begin
  98.   // fieldURL
  99.   LineNr := FindLine('<!--SHOP MODUL ELEJE', Page, 0);
  100.   if LineNr > -1 then
  101.   begin
  102.     Line := Page.GetString(LineNr+4);
  103.     BeginPos := pos('termek_id', Line)+18;
  104.     EndPos := pos('">', Line);
  105.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  106.     SetField(fieldURL, 'http://www.netpiac.hu/display/index.phtml?do=termek&termek_id=' + Value);
  107.   end;
  108.  
  109.   // fieldSource
  110.   SetField(fieldSource,'NetPiac.hu');
  111.  
  112.   // fieldMediaType
  113.   SetField(fieldMediaType, 'DVD');
  114.  
  115.   // fieldTranslatedTitle fieldOriginalTitle fieldCategory fieldYear fieldCountry
  116.   LineNr := FindLine('<!--kΘpkontΘner vΘge', Page, 0);
  117.   if LineNr > -1 then
  118.   begin
  119.     LineNr := FindLine('ib2">', Page, LineNr);
  120.     Line := Page.GetString(LineNr);
  121.     BeginPos := pos('ib2">', Line)+5;
  122.     EndPos := pos('</span>', Line);
  123.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  124.     SetField(fieldTranslatedTitle,RemoveHTML(Value));
  125.  
  126.     Delete(Line,1,EndPos);
  127.     BeginPos := pos('ib3">', Line)+5;
  128.     EndPos := pos('<br>', Line);
  129.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  130.     SetField(fieldOriginalTitle,RemoveHTML(Value));
  131.  
  132.     Delete(Line,1,EndPos+3);
  133.     EndPos := pos('</span>', Line);
  134.     FullValue := copy(Line, 1, EndPos-1);
  135.  
  136.     EndPos := pos(',',FullValue);
  137.     Value := copy(FullValue, 1, EndPos-1);
  138.     SetField(fieldCategory, RemoveHTML(Value));
  139.  
  140.     Delete(FullValue,1,EndPos+1);
  141.     EndPos := pos('-',FullValue);
  142.     Value := copy(FullValue, 1, EndPos-1);
  143.     SetField(fieldYear,RemoveHTML(Value));
  144.  
  145.     Delete(FullValue,1,EndPos+1);
  146.     EndPos := pos('film',FullValue);
  147.     Value := copy(FullValue, 1, EndPos-1);
  148.     SetField(fieldCountry,RemoveHTML(Value));
  149.  
  150.   end;
  151.  
  152.   // fieldDirector
  153.   LineNr := FindLine('Rendezte:', Page, 0);
  154.   if LineNr > -1 then
  155.   begin
  156.     Line := Page.GetString(LineNr);
  157.     BeginPos := pos('class="ib2">', Line) + 12;
  158.     EndPos := pos('</span></a>', Line)-1;
  159.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  160.     SetField(fieldDirector, RemoveHTML(Value));
  161.   end;
  162.  
  163.   // fieldActors
  164.   LineNr := FindLine('F⌡szerepben: ', Page, 0);
  165.   if LineNr > -1 then
  166.   begin
  167.     Line := Page.GetString(LineNr);
  168.     BeginPos := pos('F⌡szerepben: ', Line) + 12;
  169.     Delete(Line,1, BeginPos);
  170.     FullValue := Line;
  171.     repeat
  172.       LineNr := LineNr + 1;
  173.       Line := Page.GetString(LineNr);
  174.       FullValue := FullValue + Line;
  175.     until Line = '<br><br>';
  176.     SetField(fieldActors, RemoveHTML(FullValue));
  177.   end;
  178.  
  179.   // fieldProducer  - studi≤
  180.   LineNr := FindLine('St·di≤/Forgalmaz≤:', Page, 0);
  181.   if LineNr > -1 then
  182.   begin
  183.     Line := Page.GetString(LineNr);
  184.     BeginPos := pos('St·di≤/Forgalmaz≤:', Line);
  185.     Delete(Line,1,BeginPos);
  186.     BeginPos := pos('top">', Line)+5;
  187.     EndPos := pos('</td></tr>', Line);
  188.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  189.     SetField(fieldProducer,RemoveHTML(Value));
  190.   end;
  191.  
  192.   // fieldLanguages
  193.   LineNr := FindLine('>Hang: <', Page, 0);
  194.   if LineNr > -1 then
  195.   begin
  196.     Line := Page.GetString(LineNr);
  197.     BeginPos := pos('>Hang: <', Line);
  198.     Delete(Line,1,BeginPos);
  199.     BeginPos := pos('top">', Line)+5;
  200.     EndPos := pos('</td></tr>', Line);
  201.     Value := copy(Line, BeginPos, EndPos - BeginPos);
  202.     SetField(fieldLanguages,RemoveHTML(Value));
  203.   end;
  204.  
  205.   // fieldComments Kepformatum
  206.   LineNr := FindLine('KΘp : ', Page, 0);
  207.   FullValue := '';
  208.   if LineNr > -1 then
  209.   begin
  210.     repeat
  211.       LineNr := LineNr + 1;
  212.       Line := Page.GetString(LineNr);
  213.       BeginPos := pos('<td class="txt">', Line);
  214.       if BeginPos > 0 then
  215.       begin
  216.         Delete(Line,1,BeginPos+16);
  217.         FullValue := FullValue + RemoveHTML(Line);
  218.       end;
  219.     until (pos('</tr>', Line) > 0);
  220.     SetField(fieldComments,RemoveHTML(FullValue));
  221.   end;
  222.  
  223.   // fieldSubtitles Kepformatum
  224.   LineNr := FindLine('Felirat nyelv:', Page, 0);
  225.   if LineNr > -1 then
  226.   begin
  227.     Line := Page.GetString(LineNr);
  228.     BeginPos := pos('Felirat nyelv:', Line);
  229.     Delete(Line,1,BeginPos+13);
  230.     EndPos := pos('</td></tr>', Line);
  231.     Value := copy(Line, 1, EndPos);
  232.     SetField(fieldSubtitles,RemoveHTML(Value));
  233.   end;
  234.  
  235.   // fieldLength
  236.   LineNr := FindLine('Hossza:', Page, 0);
  237.   if LineNr > -1 then
  238.   begin
  239.     Line := Page.GetString(LineNr+1);
  240.     BeginPos := pos('"txt">', Line)+6;
  241.     EndPos := pos(' perc', Line);
  242.     Value := copy(Line, BeginPos, EndPos-BeginPos);
  243.     SetField(fieldLength,RemoveHTML(Value));
  244.   end;
  245.  
  246.   // Picture
  247.   LineNr := FindLine('/display/pop.phtml?pic', Page, 0);
  248.   if LineNr > -1 then
  249.   begin
  250.     Line := Page.GetString(LineNr);
  251.     BeginPos := pos('<img src="', Line)+9;
  252.     Delete(Line, 1, BeginPos);
  253.     EndPos := pos('" h', Line);
  254.     Value := copy(Line, 1, EndPos - 1);
  255.     GetPicture('http://www.netpiac.hu' + Value);
  256.   end;
  257.  
  258.   // fieldDescription
  259.   LineNr := FindLine('<!--SHOP MODUL V╔GE', Page, 0);
  260.   if LineNr > -1 then
  261.   begin
  262.     Line := Page.GetString(LineNr + 1);
  263.     SetField(fieldDescription, RemoveHTML(Line));
  264.   end;
  265.  
  266.   //DisplayResults;
  267. end;
  268.  
  269. procedure AddMoviesTitles(Page: TStringList; var LineNr: Integer);
  270. var
  271.   Line: string;
  272.   MovieTitle, MovieAddress: string;
  273.   StartPos: Integer;
  274.   EndPos: Integer;
  275. begin
  276.   LineNr := 0;
  277.   repeat
  278.     LineNr := FindLine('<!--tΘtel eleje-->', Page, LineNr);
  279.     LineNr := LineNr + 1 ;
  280.     Line := Page.GetString(LineNr);
  281.     StartPos := pos('a href="', Line);
  282.     if StartPos > 0 then
  283.     begin
  284.       EndPos := pos('"><img', Line);
  285.       MovieAddress := copy(Line, StartPos + 8, EndPos-StartPos-8);
  286.  
  287.       StartPos := pos('"navu">', Line);
  288.       Delete(Line, 1, StartPos+6);
  289.       EndPos := pos('</a></td>', Line);
  290.       MovieTitle := copy(Line, 1, EndPos-1);
  291.  
  292.       PickTreeAdd(MovieTitle, 'http://www.netpiac.hu' + MovieAddress);
  293.     end;
  294.   until LineNr = 0;
  295.  
  296. end;
  297.  
  298. begin
  299.   if CheckVersion(3,5,0) then
  300.   begin
  301.     MovieName := GetField(fieldOriginalTitle);
  302.     if MovieName = '' then
  303.       MovieName := GetField(fieldTranslatedTitle);
  304.     if Input('Importßlßs a NetPiac.hu-r≤l', 'A film cφme:', MovieName) then
  305.     begin
  306.       AnalyzePage('http://www.netpiac.hu/display/index.phtml?limit=40&style=1&do=talalatok&do2=gyors&ujkereses=1&hol=3&szoveg='+AddHTML(MovieName));
  307.     end;
  308.   end else
  309.   ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)');
  310. end.
  311.  
  312.